// src/utils/backgroundUtils.ts
import { handleFileUpload } from '@/services/uploadService';

/**
 * 处理背景图片上传
 * @param draftId 草稿ID
 * @returns Promise<string | null> 上传后的图片URL或null
 */
export const uploadBackgroundImage = async (draftId: string): Promise<string | null> => {
    try {
        // 使用贴纸类型上传背景图片
        // 这里我们复用现有的handleFileUpload函数，因为它已经包含了文件选择、验证和上传逻辑
        const url = await handleFileUpload('sticker', draftId);
        return url;
    } catch (error) {
        console.error('背景图片上传失败:', error);
        alert(`上传背景图片时出错: ${error instanceof Error ? error.message : String(error)}`);
        return null;
    }
};

/**
 * 生成随机颜色
 * @returns 十六进制颜色值
 */
export const generateRandomColor = (): string => {
    const letters = '0123456789ABCDEF';
    let color = '#';
    for (let i = 0; i < 6; i++) {
        color += letters[Math.floor(Math.random() * 16)];
    }
    return color;
};

/**
 * 验证十六进制颜色值
 * @param color 颜色字符串
 * @returns 是否为有效的十六进制颜色值
 */
export const isValidHexColor = (color: string): boolean => {
    return /^#([0-9A-F]{3}){1,2}$/i.test(color);
};
